home *** CD-ROM | disk | FTP | other *** search
/ Language/OS - Multiplatform Resource Library / LANGUAGE OS.iso / sml_nj / 93src.lha / src / m68 / m68coder.sig < prev    next >
Encoding:
Text File  |  1993-01-27  |  2.7 KB  |  132 lines

  1. (* Copyright 1989 by AT&T Bell Laboratories *)
  2. signature M68CODER = sig
  3.  
  4. eqtype Label
  5.  
  6. val newlabel : unit -> Label
  7.  
  8. exception BadReal of string
  9.  
  10. datatype Register = DataReg of int
  11.           | AddrReg of int
  12.           | FloatReg of int
  13.           | PC
  14.  
  15. datatype Size = Byte | Word | Long
  16.  
  17. datatype EA = Direct of Register
  18.         | PostInc of Register
  19.         | PreDec of Register
  20.         | Displace of Register * int
  21.         | Index of Register * int * Register * Size
  22.         | Immedlab of Label
  23.         | Immed of int
  24.         | Abs of int
  25.         | Address of Label
  26.  
  27. val d0 : Register
  28. val d1 : Register
  29. val d2 : Register
  30. val d3 : Register
  31. val d4 : Register
  32. val d5 : Register
  33. val d6 : Register
  34. val d7 : Register
  35. val a0 : Register
  36. val a1 : Register
  37. val a2 : Register
  38. val a3 : Register
  39. val a4 : Register
  40. val a5 : Register
  41. val a6 : Register
  42. val sp : Register
  43. val fp0 : Register
  44. val fp1 : Register
  45. val fp2 : Register
  46. val fp3 : Register
  47. val fp4 : Register
  48. val fp5 : Register
  49. val fp6 : Register
  50. val fp7 : Register
  51.  
  52. val align : unit -> unit
  53. val mark : unit -> unit
  54. val define : Label -> unit
  55. val emitstring : string -> unit
  56. val realconst : string -> unit
  57. val emitlong : int -> unit
  58.  
  59. val emitlab : int * Label -> unit
  60.  
  61. val rts : unit -> unit
  62. val exg : (EA * EA) -> unit
  63. val movl : (EA * EA) -> unit
  64. val orl : (EA * EA) -> unit
  65. val andl : (EA * EA) -> unit
  66. val eorl : (EA * EA) -> unit
  67. val addl : (EA * EA) -> unit
  68. val subl : (EA * EA) -> unit
  69. val cmpl : (EA * EA) -> unit
  70. val btst : (EA * EA) -> unit
  71. val pea : EA -> unit
  72. val lea : (EA * EA) -> unit
  73. val jne : EA -> unit
  74. val jeq : EA -> unit
  75. val jra : EA -> unit
  76. val jbsr : EA -> unit
  77.  
  78. val jgt : EA -> unit
  79. val jge : EA -> unit
  80. val jlt : EA -> unit
  81. val jle : EA -> unit
  82. val asrl : EA * EA -> unit
  83. val asll : EA * EA -> unit
  84. val divl : EA * EA -> unit
  85. val mull : EA * EA -> unit
  86. val movb : EA * EA -> unit
  87.  
  88. val fjne : EA -> unit
  89. val fjeq : EA -> unit
  90. val fjgt : EA -> unit
  91. val fjge : EA -> unit
  92. val fjlt : EA -> unit
  93. val fjle : EA -> unit
  94. val jcc : EA -> unit
  95. val jls : EA -> unit
  96.  
  97. (**** The following are not used ****
  98. val fcmpd : EA * EA -> unit
  99. val faddd : EA * EA -> unit
  100. val fsubd : EA * EA -> unit
  101. val fmuld : EA * EA -> unit
  102. val fdivd : EA * EA -> unit
  103. ****)
  104. val fmoved : EA * EA -> unit
  105.  
  106. val fcmpx : EA * EA -> unit
  107. val faddx : EA * EA -> unit
  108. val fsubx : EA * EA -> unit
  109. val fmulx : EA * EA -> unit
  110. val fdivx : EA * EA -> unit
  111. val fnegx : EA * EA -> unit
  112. val fabsx : EA * EA -> unit
  113. val fmovex : EA * EA -> unit
  114. val fmovel : EA * EA -> unit
  115.  
  116. val trapv : unit -> unit
  117. val trapmi : unit -> unit
  118.  
  119. val push : EA -> unit
  120. val pusha : EA -> unit
  121. val pop : EA -> unit
  122.  
  123. val comment : string -> unit
  124.  
  125. end (* signature CODER *)
  126.  
  127. signature M68MCODER = 
  128. sig 
  129.     structure Coder : M68CODER
  130.     val finish : unit -> string
  131. end
  132.